#include "Log.hpp"
#include "ThreadPool.hpp"
#include <memory>

using namespace LogModule;
using namespace ThreadPoolModule;

struct Task{
    void operator()(){

    }
};

int main()
{
    Enable_Console_Log_Strategy();

    // // int 肯定是不行的，需要一个可调用的对象
    // ThreadPool<int> *tp = new ThreadPool<int>();

    // tp->Start();
    // //tp->Equeue(t);

    // sleep(100);
    // tp->Stop();
    // Enable_Console_Log_Strategy();
    // LOG(LogLevel::DEBUG) << "hello world" << 3.141;
    // LOG(LogLevel::DEBUG) << "hello world" << 3.142;
    //[2025-08-26 17:10:12] [DEBUG] [5625] [Main.cc] [20] - hello world3.141
    //[2025-08-26 17:10:12] [DEBUG] [5625] [Main.cc] [21] - hello world3.142

    // Enable_File_Log_Strategy();
    // LOG(LogLevel::DEBUG) << "hello world" << 3.143;
    // LOG(LogLevel::DEBUG) << "hello world" << 3.144;
    // log/my.log
    //[2025-08-26 17:08:59] [DEBUG] [5508] [Main.cc] [24] - hello world3.143
    //[2025-08-26 17:08:59] [DEBUG] [5508] [Main.cc] [25] - hello world3.144

    // std::unique_ptr<LogStrategy> strategy = std::make_unique<ConsoleLogStrategy>(); // C++14
    // std::unique_ptr<LogStrategy> strategy = std::make_unique<FileLogStrategy>(); // C++14
    // strategy->SyncLog("hello log!");
    //----------------------------------------------------------------------------------------------
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world," << 3.14 << " " << 8899 << "aaaa";
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world";
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world";
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world";
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world";
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world";
    // logger(LogLevel::DEBUG, "main.cc", 10) << "hello world";

    //[2025-08-26 17:03:04] [DEBUG] [5404] [main.cc] [10] - hello world
    //[2025-08-26 17:03:04] [DEBUG] [5404] [main.cc] [10] - hello world
    return 0;
}